﻿using System;

namespace Terraria.ModLoader
{
	// Token: 0x020001C5 RID: 453
	public abstract class ModCommand
	{
		// Token: 0x17000157 RID: 343
		// (get) Token: 0x060012EE RID: 4846 RVA: 0x0000FADD File Offset: 0x0000DCDD
		// (set) Token: 0x060012EF RID: 4847 RVA: 0x0000FAE5 File Offset: 0x0000DCE5
		public Mod mod { get; internal set; }

		// Token: 0x17000158 RID: 344
		// (get) Token: 0x060012F0 RID: 4848 RVA: 0x0000FAEE File Offset: 0x0000DCEE
		// (set) Token: 0x060012F1 RID: 4849 RVA: 0x0000FAF6 File Offset: 0x0000DCF6
		public string Name { get; internal set; }

		// Token: 0x17000159 RID: 345
		// (get) Token: 0x060012F2 RID: 4850
		public abstract string Command { get; }

		// Token: 0x1700015A RID: 346
		// (get) Token: 0x060012F3 RID: 4851
		public abstract CommandType Type { get; }

		// Token: 0x1700015B RID: 347
		// (get) Token: 0x060012F4 RID: 4852 RVA: 0x0000FAFF File Offset: 0x0000DCFF
		public virtual string Usage
		{
			get
			{
				return "/" + this.Command;
			}
		}

		// Token: 0x1700015C RID: 348
		// (get) Token: 0x060012F5 RID: 4853 RVA: 0x0000EAC0 File Offset: 0x0000CCC0
		public virtual string Description
		{
			get
			{
				return "";
			}
		}

		// Token: 0x060012F6 RID: 4854 RVA: 0x0000FB11 File Offset: 0x0000DD11
		public virtual bool Autoload(ref string name)
		{
			return this.mod.Properties.Autoload;
		}

		// Token: 0x060012F7 RID: 4855
		public abstract void Action(CommandCaller caller, string input, string[] args);
	}
}
